// 6-2 英文单词排序
#include <stdio.h>
int main(){
	
    char icc[21][11];
    int length=0;
    
    while(1){
        scanf("%s",icc[length]);
        if(strcmp(icc[length], "#") == 0) break;
        length++;
    }
    
    int j,k;
    
	char temp[11] = {'\0'};
    
    //冒泡排序 
    for(k = 0; k < length; k++){
    	for(j = 1; j < length - k; j++){
    		
    		if(strlen(icc[j - 1]) > strlen(icc[j])){
    		    //strcpy(s1,s2)函数就是将字符串s2赋到s1中，连同字符串结束标
    			strcpy(temp,icc[j - 1]);
				strcpy(icc[j - 1],icc[j]);
				strcpy(icc[j],temp); 
			}
		}
	}
	//格式化输出 
	for(k = 0; k < length; k++){
		printf("%s ",icc[k]);
	} 
    return 0;
    
}